React์ ์คํ์ SuspenseList ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ณต์ก์ฑ์ ๊น์ด ํํค์น๊ณ , ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ๊ณ ์ฑ๋ฅ, ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ธ React ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์ต์ ํ ์ ๋ต์ ํ์ํฉ๋๋ค.
React ์คํ์ SuspenseList ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ: ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ Suspense ์ต์ ํ
๋น ๋ฅด๊ฒ ์งํํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ํ๊ฒฝ์์, ํนํ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด๊ณผ ๊ธฐ๊ธฐ ์ฑ๋ฅ์ ๊ฐ์ง ์ ์ธ๊ณ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋์์ผ๋ก ํ๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ์ฐ, ๋งค๋๋ฝ๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ด ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ๋ฐ์ดํฐ ํ์นญ์ด๋ ์ฝ๋ ๋ถํ ๊ณผ ๊ฐ์ ๋น๋๊ธฐ ์์
์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ธ React์ Suspense API๋ ์ฐ๋ฆฌ๊ฐ ๋ก๋ฉ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ํ์ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ณต์กํด์ง๊ณ ๊ท๋ชจ๊ฐ ์ปค์ง์ ๋ฐ๋ผ, Suspense, ํนํ ์คํ์ ๊ธฐ๋ฅ์ธ SuspenseList๋ฅผ ํ์ฉํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํ ๊ด์ฌ์ฌ๊ฐ ๋ฉ๋๋ค. ์ด ์ข
ํฉ ๊ฐ์ด๋๋ React์ ์คํ์ SuspenseList ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ๊น์ด ํ๊ณ ๋ค์ด, ์ ์ธ๊ณ์ ์ผ๋ก ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๊ณ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํ ์ค์ฉ์ ์ธ ์ ๋ต์ ์ ๊ณตํฉ๋๋ค.
React Suspense์ ๋น๋๊ธฐ ์์ ์์์ ์ญํ ์ดํดํ๊ธฐ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํด ์์๋ณด๊ธฐ ์ ์, React Suspense์ ํต์ฌ ๊ฐ๋
์ ํ์
ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. Suspense๋ ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ก๋ฉ ์ํ๋ฅผ ์ ์ธ์ ์ผ๋ก ์ง์ ํ ์ ์๊ฒ ํด์ค๋๋ค. ์ ํต์ ์ผ๋ก ๋ก๋ฉ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ณต์กํ ์กฐ๊ฑด๋ถ ๋ ๋๋ง, ์ฌ๋ฌ ๊ฐ์ ๋ก๋ฉ ์คํผ๋, ๊ทธ๋ฆฌ๊ณ ๊ฒฝ์ ์กฐ๊ฑด์ ๊ฐ๋ฅ์ฑ์ ํฌํจํ์ต๋๋ค. Suspense๋ ์ปดํฌ๋ํธ๊ฐ ๋น๋๊ธฐ ์์
(๋ฐ์ดํฐ ํ์นญ ๋ฑ)์ด ์งํ๋๋ ๋์ ๋ ๋๋ง์ '์ผ์ ์ค๋จ'ํ ์ ์๊ฒ ํจ์ผ๋ก์จ ์ด๋ฅผ ๋จ์ํํฉ๋๋ค. ์ด ์ผ์ ์ค๋จ ๊ธฐ๊ฐ ๋์ React๋ <Suspense> ๊ฒฝ๊ณ๋ก ๊ฐ์ธ์ธ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์ ๊ณตํ๋ ํด๋ฐฑ UI(์: ๋ก๋ฉ ์คํผ๋ ๋๋ ์ค์ผ๋ ํค ์คํฌ๋ฆฐ)๋ฅผ ๋ ๋๋งํ ์ ์์ต๋๋ค.
Suspense์ ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋จ์ํ๋ ๋ก๋ฉ ์ํ ๊ด๋ฆฌ: ๋น๋๊ธฐ ๋ฐ์ดํฐ ํ์นญ ๋ฐ ํด๋ฐฑ ๋ ๋๋ง์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์์ฉ๊ตฌ ์ฝ๋๋ฅผ ์ค์ฌ์ค๋๋ค.
- ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ: ๋ก๋ฉ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ ์ผ๊ด๋๊ณ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ฐ์์ค๋ฌ์ด UI ๋ณ๊ฒฝ์ ๋ฐฉ์งํฉ๋๋ค.
- ๋์์ฑ ๋ ๋๋ง: Suspense๋ React์ ๋์์ฑ ๊ธฐ๋ฅ์ ์ด์์ผ๋ก, ๋ณต์กํ ์์ ์ค์๋ ๋ ๋ถ๋๋ฌ์ด ์ ํ๊ณผ ๋ ๋์ ๋ฐ์์ฑ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ์ฝ๋ ๋ถํ : ๋์ ์ํฌํธ(
React.lazy)์ ์ํํ๊ฒ ํตํฉ๋์ด ํจ์จ์ ์ธ ์ฝ๋ ๋ถํ ์ ์ง์ํ๋ฉฐ, ํ์ํ ๋๋ง ์ปดํฌ๋ํธ๋ฅผ ๋ก๋ํฉ๋๋ค.
SuspenseList ์๊ฐ: ์ฌ๋ฌ Suspense ๊ฒฝ๊ณ ์กฐ์ ํ๊ธฐ
๋จ์ผ <Suspense> ๊ฒฝ๊ณ๋ ๊ฐ๋ ฅํ์ง๋ง, ์ค์ ์ ํ๋ฆฌ์ผ์ด์
์์๋ ์ข
์ข
์ฌ๋ฌ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋์์ ๋ก๋ํด์ผ ํฉ๋๋ค. ๋ฐ๋ก ์ด๋ ์คํ์ ์ธ SuspenseList๊ฐ ์ญํ ์ ํฉ๋๋ค. SuspenseList๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ <Suspense> ์ปดํฌ๋ํธ๋ฅผ ์กฐ์ ํ์ฌ ํด๋ฐฑ์ด ๋ํ๋๋ ์์์ ๋ชจ๋ ์ข
์์ฑ์ด ์ถฉ์กฑ๋์์ ๋ ์ฃผ ์ฝํ
์ธ ๊ฐ ๋ ๋๋ง๋๋ ๋ฐฉ์์ ์ ์ดํ ์ ์์ต๋๋ค.
SuspenseList์ ์ฃผ๋ ๋ชฉ์ ์ ์ฌ๋ฌ ๊ฐ์ ์ผ์ ์ค๋จ๋ ์ปดํฌ๋ํธ๊ฐ ๋ํ๋๋ ์์๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์
๋๋ค. ๋ ๊ฐ์ง ์ฃผ์ props๋ฅผ ์ ๊ณตํฉ๋๋ค:
revealOrder: ํ์ Suspense ์ปดํฌ๋ํธ๊ฐ ์ฝํ ์ธ ๋ฅผ ํ์ํด์ผ ํ๋ ์์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฐ์'forwards'(๋ฌธ์ ์์๋๋ก ํ์)์'backwards'(๋ฌธ์ ์ญ์์ผ๋ก ํ์)์ ๋๋ค.tail: ํํ ํด๋ฐฑ์ด ๋ ๋๋ง๋๋ ๋ฐฉ์์ ์ ์ดํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฐ์'collapsed'(๊ฐ์ฅ ๋จผ์ ํ์๋ ํด๋ฐฑ๋ง ๋ณด์)์'hidden'(์ ํ ํ์ ๊ฐ ๋ชจ๋ ํด๊ฒฐ๋ ๋๊น์ง ํํ ํด๋ฐฑ์ด ํ์๋์ง ์์)์ ๋๋ค.
์ฌ์ฉ์์ ํ๋กํ ๋ฐ์ดํฐ์ ์ต๊ทผ ํ๋ ํผ๋๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ์๋ฅผ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. SuspenseList๊ฐ ์๋ค๋ฉด, ๋ ๊ฐ์ง ๋ชจ๋ ๋์์ ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ์ฌ UI๊ฐ ๋ณต์กํด์ง๊ฑฐ๋ ์์ธกํ๊ธฐ ์ด๋ ค์ด ๋ก๋ฉ ๊ฒฝํ์ ์ด๋ํ ์ ์์ต๋๋ค. SuspenseList๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋กํ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋ก๋๋๋๋ก ์ง์ํ๊ณ , ๊ทธ ํ์ ํผ๋๋ ์ค๋น๋๋ฉด ๋ ๋ค ํ์ํ๊ฑฐ๋, ๊ณ๋จ์ ํ์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Suspense์ SuspenseList์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ณผ์
Suspense์ SuspenseList๊ฐ ๊ฐ๋ ฅํ ๋งํผ, ํนํ ๋๊ท๋ชจ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํ ๊น์ ์ดํด๊ฐ ํ์ํฉ๋๋ค. ํต์ฌ ๊ณผ์ ๋ React๊ฐ ์ผ์ ์ค๋จ๋ ์ปดํฌ๋ํธ์ ์ํ, ๊ด๋ จ ๋ฐ์ดํฐ ๋ฐ ํด๋ฐฑ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์์ต๋๋ค.
์ปดํฌ๋ํธ๊ฐ ์ผ์ ์ค๋จ๋๋ฉด React๋ ์ฆ์ ์ด๋ฅผ ๋ง์ดํธ ํด์ ํ๊ฑฐ๋ ์ํ๋ฅผ ๋ฒ๋ฆฌ์ง ์์ต๋๋ค. ๋์ '์ผ์ ์ค๋จ๋' ์ํ๋ก ๋ค์ด๊ฐ๋๋ค. ๊ฐ์ ธ์ค๋ ๋ฐ์ดํฐ, ์งํ ์ค์ธ ๋น๋๊ธฐ ์์ , ๊ทธ๋ฆฌ๊ณ ํด๋ฐฑ UI ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํฉ๋๋ค. ๋ฐ์ดํฐ ํ์นญ ์์ด ๋ง๊ฑฐ๋, ๋์ ์์ ์ด ๋ง๊ฑฐ๋, ์ปดํฌ๋ํธ ํธ๋ฆฌ๊ฐ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ด๋ก ์ธํด ์๋นํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
SuspenseList์ ์คํ์ ํน์ฑ์ ๊ณ ๊ธ ์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋์์, ๋ด๋ถ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ต์ ์์ง ๋ฐ์ ์ค์์ ์๋ฏธํฉ๋๋ค. ์๋ชป ๊ด๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค:
- ๋ฉ๋ชจ๋ฆฌ ์๋น ์ฆ๊ฐ: ์ค๋๋ ๋ฐ์ดํฐ, ์ดํ๋์ง ์์ ํ๋ก๋ฏธ์ค, ๋๋ ๋จ์์๋ ํด๋ฐฑ ์ปดํฌ๋ํธ๊ฐ ๋์ ๋์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ์ ํ: ํฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ถ๋ด์ ์ฃผ์ด ์คํ ์๋ ์ ํ, ๋ ๊ธด ๊ฐ๋น์ง ์ปฌ๋ ์ ์ฃผ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์์ฑ์ด ๋จ์ด์ง๋ UI๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋์ ๊ฐ๋ฅ์ฑ: ๋ถ์ ์ ํ๊ฒ ์ฒ๋ฆฌ๋ ๋น๋๊ธฐ ์์ ์ด๋ ์ปดํฌ๋ํธ ์๋ช ์ฃผ๊ธฐ๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. ์ด๋ ๋ ์ด์ ํ์ํ์ง ์์ ๋ฆฌ์์ค๊ฐ ํด์ ๋์ง ์์ ์ ์ง์ ์ธ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ์ฌ์ฉ์์ ๋ํ ์ํฅ: ์ฑ๋ฅ์ด ๋ฎ์ ๊ธฐ๊ธฐ๋ ๋ฐ์ดํฐ ์๊ธ์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ ๊ณผ๋ํ ๋ฉ๋ชจ๋ฆฌ ์๋น์ ๋๋ฆฐ ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ํนํ ๋ฐ๊ธฐ ์ฝ์ต๋๋ค.
SuspenseList์์ Suspense ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ์ ๋ต
Suspense์ SuspenseList ๋ด์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต์ ํํ๋ ค๋ฉด ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ฆฌ์์ค ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ React์ ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํ๋ ๋ค๊ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํฉ๋๋ค. ์ฃผ์ ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1. ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์บ์ฑ ๋ฐ ๋ฌดํจํ
๋ฉ๋ชจ๋ฆฌ ์๋น์ ๊ฐ์ฅ ํฐ ์์ธ ์ค ํ๋๋ ์ค๋ณต๋ ๋ฐ์ดํฐ ํ์นญ๊ณผ ์ค๋๋ ๋ฐ์ดํฐ์ ์ถ์ ์ ๋๋ค. ๊ฒฌ๊ณ ํ ๋ฐ์ดํฐ ์บ์ฑ ์ ๋ต์ ๊ตฌํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์ธก ์บ์ฑ: React Query (TanStack Query)๋ SWR (Stale-While-Revalidate)๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ธ์. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ์ ๋ํ ๋ด์ฅ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์๋ต์ ์ง๋ฅ์ ์ผ๋ก ์บ์ํ๊ณ , ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฌ๊ฒ์ฆํ๋ฉฐ, ์บ์ ๋ง๋ฃ ์ ์ฑ ์ ์ค์ ํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ฌ์์ฒญ์ ํ์์ฑ์ ๊ทน์ ์ผ๋ก ์ค์ด๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊นจ๋ํ๊ฒ ์ ์งํฉ๋๋ค.
- ์บ์ ๋ฌดํจํ ์ ๋ต: ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์ค๋๋์๊ฑฐ๋ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ ๋ ์ด๋ฅผ ๋ฌดํจํํ๋ ๋ช ํํ ์ ๋ต์ ์ ์ํ์ธ์. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๋ถํ์ํ๊ฒ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ์ง ์๊ณ ํญ์ ์ต์ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ์ด์ ์ด์
: ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ฐ์ดํฐ ๋ณํ์ด๋ ํ์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ,
React.memo๋๋useMemo๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๊ณ์ฐ๊ณผ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋ฐฉ์งํ์ธ์. ์ด๋ ์๋ก์ด ๊ฐ์ฒด ์์ฑ์ ํผํจ์ผ๋ก์จ ๊ฐ์ ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
2. ์ฝ๋ ๋ถํ ๋ฐ ๋ฆฌ์์ค ๋ก๋ฉ์ Suspense ํ์ฉํ๊ธฐ
Suspense๋ React.lazy๋ฅผ ์ฌ์ฉํ ์ฝ๋ ๋ถํ ๊ณผ ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ํจ์จ์ ์ธ ์ฝ๋ ๋ถํ ์ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ ๋ฟ๋ง ์๋๋ผ ํ์ํ ์ฝ๋ ์ฒญํฌ๋ง ๋ก๋ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ๊ฐ์ ํฉ๋๋ค.
- ์ธ๋ถํ๋ ์ฝ๋ ๋ถํ : ๋ผ์ฐํธ, ์ฌ์ฉ์ ์ญํ ๋๋ ๊ธฐ๋ฅ ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฒญํฌ๋ก ๋ถํ ํ์ธ์. ๊ฑฐ๋ํ ์ฝ๋ ๋ฒ๋ค์ ํผํ์ธ์.
- ์ปดํฌ๋ํธ์ ๋ํ ๋์ ์ํฌํธ: ์ฆ์ ๋ณด์ด๊ฑฐ๋ ์ด๊ธฐ ๋ ๋๋ง์ ํ์ํ์ง ์์ ์ปดํฌ๋ํธ์๋
React.lazy(() => import('./MyComponent'))๋ฅผ ์ฌ์ฉํ์ธ์. ์ด๋ฌํ ์ง์ฐ ๋ก๋ฉ ์ปดํฌ๋ํธ๋ฅผ<Suspense>๋ก ๊ฐ์ธ ๋ก๋๋๋ ๋์ ํด๋ฐฑ์ ํ์ํ์ธ์. - ๋ฆฌ์์ค ๋ก๋ฉ: Suspense๋ ๋ ๋๋ง์ ์ค์ํ ์ด๋ฏธ์ง๋ ํฐํธ์ ๊ฐ์ ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ก๋ฉ์ ๊ด๋ฆฌํ๋ ๋ฐ์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฃผ๋ ์ด์ ์ ์๋์ง๋ง, ์ด๋ฌํ ์์ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ง์ถคํ ์ผ์ ์ค๋จ ๊ฐ๋ฅํ ๋ฆฌ์์ค ๋ก๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
3. SuspenseList Props ์ ์คํ๊ฒ ์ฌ์ฉํ๊ธฐ
SuspenseList props์ ๊ตฌ์ฑ์ ๋ฆฌ์์ค๊ฐ ํ์๋๊ณ ๊ด๋ฆฌ๋๋ ๋ฐฉ์์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
revealOrder:'forwards'๋๋'backwards'๋ฅผ ์ ๋ต์ ์ผ๋ก ์ ํํ์ธ์. ์ข ์ข'forwards'๋ ์ฝํ ์ธ ๊ฐ ์์ ์์๋๋ก ๋ํ๋๋ฏ๋ก ๋ ์์ฐ์ค๋ฌ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ์๊ณ ์ค์ํ ์ ๋ณด ์กฐ๊ฐ์ด ๋จผ์ ๋ก๋๋๋ ํน์ ๋ ์ด์์์์๋ 'backwards' ํ์๊ฐ ๋ ํจ์จ์ ์ผ ์ ์๋์ง ๊ณ ๋ คํด ๋ณด์ธ์.tail:'collapsed'๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ์ ๋ ๋ถ๋๋ฌ์ด UX๋ฅผ ์ํด ์ ํธ๋ฉ๋๋ค. ํ ๋ฒ์ ํ๋์ ํด๋ฐฑ๋ง ๋ณด์ด๋๋ก ํ์ฌ ๋ก๋ฉ ์งํ์ ์ฐ์๋ฅผ ๋ฐฉ์งํฉ๋๋ค.'hidden'์ ์ค๊ฐ ๋ก๋ฉ ์ํ ์์ด ์์ฐจ์ ์ธ ํ์๋ฅผ ์ ๋์ ์ผ๋ก ๋ณด์ฅํ๊ณ ์ถ์ ๋ ์ ์ฉํ ์ ์์ง๋ง, ์ฌ์ฉ์์๊ฒ UI๊ฐ ๋ '๋ฉ์ถ' ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊ฒ ํ ์ ์์ต๋๋ค.
์์: ์ค์๊ฐ ์งํ, ๋ด์ค ํผ๋, ์ฌ์ฉ์ ์๋ฆผ์ ์ํ ์์ ฏ์ด ์๋ ๋์๋ณด๋๋ฅผ ์์ํด ๋ณด์ธ์. SuspenseList๋ฅผ revealOrder='forwards'์ tail='collapsed'์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ์งํ(์ข
์ข
๋ ์์ ๋ฐ์ดํฐ ํ์ด๋ก๋)๊ฐ ๋จผ์ ๋ก๋๋ ๋ค์ ๋ด์ค ํผ๋, ๊ทธ ๋ค์์ ์๋ฆผ์ด ๋ก๋๋ ๊ฒ์
๋๋ค. tail='collapsed'๋ ํ๋์ ์คํผ๋๋ง ๋ณด์ด๋๋ก ํ์ฌ ๋ก๋ฉ ๊ณผ์ ์ ๋ ๋ถ๋ด์ค๋ฝ๊ฒ ๋๋ผ๊ฒ ํ๊ณ ์ฌ๋ฌ ๋์ ๋ก๋ฉ ์ํ์ ์ธ์ง๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค.
4. ์ผ์ ์ค๋จ๋ ์ปดํฌ๋ํธ์ ์ํ ๋ฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
์ปดํฌ๋ํธ๊ฐ ์ผ์ ์ค๋จ๋๋ฉด ๋ด๋ถ ์ํ์ ์ดํํธ๋ React์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ปดํฌ๋ํธ๊ฐ ์ค์ค๋ก ์ ๋ฆฌ ์์ ์ ์ํํ๋๋ก ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ์ ๋ฆฌ ์ดํํธ: ์ผ์ ์ค๋จ๋ ์ ์๋ ์ปดํฌ๋ํธ์ ๋ชจ๋
useEffectํ ์ ์ ์ ํ ์ ๋ฆฌ ํจ์๊ฐ ์๋์ง ํ์ธํ์ธ์. ์ด๋ ์ปดํฌ๋ํธ๊ฐ ๋ ์ด์ ํ๋ฐํ๊ฒ ๋ ๋๋ง๋์ง ์๊ฑฐ๋ ํด๋ฐฑ์ผ๋ก ๋์ฒด๋ ํ์๋ ์ง์๋ ์ ์๋ ๊ตฌ๋ ์ด๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋์ ํนํ ์ค์ํฉ๋๋ค. - ๋ฌดํ ๋ฃจํ ํผํ๊ธฐ: ์ํ ์ ๋ฐ์ดํธ๊ฐ Suspense์ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง์ ์ฃผ์ํ์ธ์. ์ผ์ ์ค๋จ๋ ์ปดํฌ๋ํธ ๋ด์์ ์ํ ์ ๋ฐ์ดํธ์ ๋ฌดํ ๋ฃจํ๋ ์ฑ๋ฅ ๋ฌธ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฆ๊ฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
5. ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ชจ๋ํฐ๋ง ๋ฐ ํ๋กํ์ผ๋ง
์ฌ์ ๋ชจ๋ํฐ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๊ฐ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น๊ธฐ ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ๋ ๋ฐ ํต์ฌ์ ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ: ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ(์: Chrome DevTools, Firefox Developer Tools)์ ๋ฉ๋ชจ๋ฆฌ ํญ์ ํ์ฉํ์ฌ ํ ์ค๋ ์ท์ ์ฐ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ถ์ํ์ธ์. ์ ์ง๋ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ณ ์ ์ฌ์ ์ธ ๋์๋ฅผ ์๋ณํ์ธ์.
- React DevTools ํ๋กํ์ผ๋ฌ: ์ฃผ๋ก ์ฑ๋ฅ์ ์ํ ๊ฒ์ด์ง๋ง, ํ๋กํ์ผ๋ฌ๋ ๊ณผ๋ํ๊ฒ ๋ฆฌ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ๋ฅผ ์๋ณํ๋ ๋ฐ๋ ๋์์ด ๋ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ฐ์ ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ณ๋์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ๊ฐ์ฌ: ํนํ ๋ง์ ๊ธ๋ก๋ฒ ์์ฅ์์ ํํ ์ ์ฌ์ ๊ธฐ๊ธฐ ๋ฐ ๋๋ฆฐ ๋คํธ์ํฌ ์กฐ๊ฑด์์ ๋ฉ๋ชจ๋ฆฌ ์๋น์ ์ธ์ฌํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ๊ฐ์ฌ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ํํ์ธ์.
6. ๋ฐ์ดํฐ ํ์นญ ํจํด ์ฌ๊ณ ํ๊ธฐ
๋๋ก๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ํ์นญ๋๊ณ ๊ตฌ์กฐํ๋๋์ง๋ฅผ ์ฌํ๊ฐํ๋ ๋ฐ์ ๋์ต๋๋ค.
- ํ์ด์ง๋ค์ด์ ๋ ๋ฐ์ดํฐ: ํฐ ๋ชฉ๋ก์ด๋ ํ ์ด๋ธ์ ๊ฒฝ์ฐ ํ์ด์ง๋ค์ด์ ์ ๊ตฌํํ์ธ์. ํ ๋ฒ์ ๋ชจ๋ ๊ฒ์ ๋ก๋ํ๋ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒญํฌ ๋จ์๋ก ๊ฐ์ ธ์ค์ธ์. Suspense๋ ์ด๊ธฐ ํ์ด์ง๊ฐ ๋ก๋๋๋ ๋์์ด๋ ๋ค์ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๋์ ํด๋ฐฑ์ ํ์ํ๋ ๋ฐ ์ฌ์ ํ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ๋ฐ ํ์ด๋๋ ์ด์ : ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, SSR์ ์ด๊ธฐ ์ธ์ง ์ฑ๋ฅ๊ณผ SEO๋ฅผ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. Suspense์ ํจ๊ป ์ฌ์ฉํ๋ฉด SSR์ ์ด๊ธฐ UI๋ฅผ ์ฌ์ ๋ ๋๋งํ๊ณ , Suspense๋ ํด๋ผ์ด์ธํธ์์ ํ์ ๋ฐ์ดํฐ ํ์นญ ๋ฐ ํ์ด๋๋ ์ด์ ์ ์ฒ๋ฆฌํ์ฌ ํด๋ผ์ด์ธํธ ๋ฉ๋ชจ๋ฆฌ์ ์ด๊ธฐ ๋ถ๋ด์ ์ค์ ๋๋ค.
- GraphQL: ๋ฐฑ์๋๊ฐ ์ง์ํ๋ค๋ฉด, GraphQL์ ํ์ํ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ ์ ์์ด, ๊ณผ๋ํ ํ์นญ์ ์ค์ด๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ธก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ผ ํ ๋ฐ์ดํฐ์ ์์ ์ค์ผ ์ ์์ต๋๋ค.
7. SuspenseList์ ์คํ์ ํน์ฑ ์ดํดํ๊ธฐ
SuspenseList๊ฐ ํ์ฌ ์คํ์ ์ด๋ผ๋ ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ ์ ๋ ์์ ํ๋๊ณ ์์ง๋ง, API์ ๋ด๋ถ ๊ตฌํ์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๋ค์์ ์ํํด์ผ ํฉ๋๋ค:
- ์ต์ ์ ๋ณด ์ ์ง: Suspense ๋ฐ
SuspenseList์ ๊ด๋ จ๋ ์ ๋ฐ์ดํธ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด React์ ๊ณต์ ๋ฌธ์์ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ๊ณ์ ํ์ธํ์ธ์. - ์ฒ ์ ํ ํ ์คํธ: ํนํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ ๋, ๋ค์ํ ๋ธ๋ผ์ฐ์ , ๊ธฐ๊ธฐ ๋ฐ ๋คํธ์ํฌ ์กฐ๊ฑด์์ ๊ตฌํ์ ์๊ฒฉํ๊ฒ ํ ์คํธํ์ธ์.
- ํ๋ก๋์
์ ์ํ ๋์ ๊ณ ๋ ค(ํ์ํ ๊ฒฝ์ฐ):
SuspenseList์ ์คํ์ ํน์ฑ์ผ๋ก ์ธํด ํ๋ก๋์ ์์ ์ฌ๊ฐํ ์์ ์ฑ์ด๋ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ๋ ์์ ์ ์ธ ํจํด์ผ๋ก ๋ฆฌํฉํ ๋งํ ์ค๋น๋ฅผ ํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก Suspense๊ฐ ์ฑ์ํด์ง์ ๋ฐ๋ผ ์ด๋ฌํ ์ฐ๋ ค๋ ์ค์ด๋ค๊ณ ์์ต๋๋ค.
Suspense ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋, ๋ค์๊ณผ ๊ฐ์ ๊ด๋ฒ์ํ ๋ค์์ฑ์ผ๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๋์ฑ ์ค์ํด์ง๋๋ค:
- ๊ธฐ๊ธฐ ์ฑ๋ฅ: ๋ง์ ์ฌ์ฉ์๊ฐ ์ ํ๋ RAM์ ๊ฐ์ง ๊ตฌํ ์ค๋งํธํฐ์ด๋ ์ ์ฌ์ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋นํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๊ทธ๋ค์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
- ๋คํธ์ํฌ ์กฐ๊ฑด: ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฌ๊ฑฐ๋ ๋ถ์์ ํ ์ง์ญ์ ์ฌ์ฉ์๋ ๋น๋ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ณผ๋ํ ๋ฐ์ดํฐ ๋ก๋ฉ์ ์ํฅ์ ํจ์ฌ ๋ ์ฌ๊ฐํ๊ฒ ๊ฒฝํํ ๊ฒ์ ๋๋ค.
- ๋ฐ์ดํฐ ๋น์ฉ: ์ธ๊ณ ์ผ๋ถ ์ง์ญ์์๋ ๋ชจ๋ฐ์ผ ๋ฐ์ดํฐ๊ฐ ๋น์๋๋ค. ๋ฐ์ดํฐ ์ ์ก๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต์ํํ๋ ๊ฒ์ ์ด๋ฌํ ์ฌ์ฉ์๋ค์๊ฒ ๋ ์ข๊ณ ์ ๋ ดํ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ง์ ์ ์ผ๋ก ๊ธฐ์ฌํฉ๋๋ค.
- ์ง์ญ๋ณ ์ฝํ ์ธ ์ฐจ์ด: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์์น์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝํ ์ธ ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ง์ญ๋ณ ์์ฐ์ ๋ก๋ฉ๊ณผ ์ธ๋ก๋ฉ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ฐ๋ผ์ ๋ ผ์๋ ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ์ ๋ต์ ์ฑํํ๋ ๊ฒ์ ๋จ์ง ์ฑ๋ฅ์ ๊ดํ ๊ฒ์ด ์๋๋ผ, ์์น๋ ๊ธฐ์ ์์์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์ํ ํฌ์ฉ์ฑ๊ณผ ์ ๊ทผ์ฑ์ ๊ดํ ๊ฒ์ ๋๋ค.
์ฌ๋ก ์ฐ๊ตฌ ๋ฐ ๊ตญ์ ์์
SuspenseList ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๊ณต๊ฐ ์ฌ๋ก ์ฐ๊ตฌ๋ ์์ง ์คํ์ ์ํ๋ก ์ธํด ๋ฑ์ฅํ๊ณ ์์ง๋ง, ๊ทธ ์์น์ ํ๋ React ์ ํ๋ฆฌ์ผ์ด์
์ ๊ด๋ฒ์ํ๊ฒ ์ ์ฉ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํด ๋ณด์ธ์:
- ์ ์์๊ฑฐ๋ ํ๋ซํผ(๋๋จ์์์): ์ธ๋๋ค์์๋ ๋ฒ ํธ๋จ๊ณผ ๊ฐ์ ๊ตญ๊ฐ์ ํ๋งคํ๋ ๋๊ท๋ชจ ์ ์์๊ฑฐ๋ ์ฌ์ดํธ๋ ์ ํ๋ RAM์ ๊ฐ์ง ๊ตฌํ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ์ฌ์ฉ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ์ฝ๋ ๋ถํ ์ ์ํ Suspense์ ์ ํ ๋ฐ์ดํฐ์ ๋ํ ํจ์จ์ ์ธ ์บ์ฑ(์: SWR ์ฌ์ฉ)์ ์ฌ์ฉํ์ฌ ์ ํ ์ด๋ฏธ์ง, ์ค๋ช
, ๋ฆฌ๋ทฐ์ ๋ก๋ฉ์ ์ต์ ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์๋ชป ๊ด๋ฆฌ๋ Suspense ๊ตฌํ์ ์ฑ ์ถฉ๋์ด๋ ๊ทน๋๋ก ๋๋ฆฐ ํ์ด์ง ๋ก๋๋ก ์ด์ด์ ธ ์ฌ์ฉ์๋ฅผ ๋ ๋๊ฒ ํ ์ ์์ต๋๋ค.
SuspenseList๋ฅผtail='collapsed'์ ํจ๊ป ์ฌ์ฉํ๋ฉด ํ๋์ ๋ก๋ฉ ํ์๊ธฐ๋ง ํ์๋์ด ๋๋ฆฐ ๋คํธ์ํฌ์ ์ฌ์ฉ์์๊ฒ ๋ ๋ถ๋ด์ค๋ฌ์ด ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. - SaaS ๋์๋ณด๋(๋ผํด ์๋ฉ๋ฆฌ์นด): ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋ถ์์ ํ ์ ์๋ ๋ธ๋ผ์ง์ด๋ ๋ฉ์์ฝ์ ์ค์๊ธฐ์
์์ ์ฌ์ฉํ๋ ๋น์ฆ๋์ค ๋ถ์ ๋์๋ณด๋๋ ๋งค์ฐ ๋ฐ์์ฑ์ด ๋์์ผ ํฉ๋๋ค.
React.lazy์ Suspense๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋ณด๊ณ ์ ๋ชจ๋์ ๊ฐ์ ธ์ค๊ณ , React Query๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์บ์ํ๋ฉด ์ฌ์ฉ์๋ ๋ค๋ฅธ ๋ชจ๋์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๊ฐ์ ธ์ค๋ ๋์ ๋ก๋๋ ๋์๋ณด๋ ๋ถ๋ถ๊ณผ ์ํธ ์์ฉํ ์ ์์ต๋๋ค. ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๋ ๋ง์ ๋ชจ๋์ด ๋ก๋๋ ๋ ๋์๋ณด๋๊ฐ ๋๋ ค์ง๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. - ๋ด์ค ์์ง๊ธฐ(์ํ๋ฆฌ์นด): ๋ค์ํ ์ฐ๊ฒฐ ์์ค์ ๊ฐ์ง ์ฌ๋ฌ ์ํ๋ฆฌ์นด ๊ตญ๊ฐ์ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ด์ค ์์ง ์ ํ๋ฆฌ์ผ์ด์
. ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ณด ํค๋๋ผ์ธ, ์ธ๊ธฐ ๊ธฐ์ฌ ๋ฐ ์ฌ์ฉ์๋ณ ์ถ์ฒ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
SuspenseList๋ฅผrevealOrder='forwards'์ ํจ๊ป ์ฌ์ฉํ๋ฉด ํค๋๋ผ์ธ์ด ๋จผ์ ๋ก๋๋๊ณ , ๊ทธ ๋ค์์ ์ธ๊ธฐ ๊ธฐ์ฌ, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ธํ๋ ์ฝํ ์ธ ๊ฐ ๋ก๋๋ ์ ์์ต๋๋ค. ์ ์ ํ ๋ฐ์ดํฐ ์บ์ฑ์ ๋์ผํ ์ธ๊ธฐ ๊ธฐ์ฌ๋ฅผ ๋ฐ๋ณตํด์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ๋์ญํญ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ชจ๋ ์ ์ฝํฉ๋๋ค.
๊ฒฐ๋ก : ๊ธ๋ก๋ฒ ๋๋ฌ์ ์ํ ํจ์จ์ ์ธ Suspense ์์ฉ
React์ Suspense์ ์คํ์ ์ธ SuspenseList๋ ํ๋์ ์ด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ ๋งค๋ ฅ์ ์ธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๊ธฐ๋ณธ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ์๋ก์ ์ฐ๋ฆฌ์ ์ฑ
์์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ํฅ์ ์ดํดํ๊ณ ์ ๊ทน์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ๊น์ง ํ์ฅ๋ฉ๋๋ค. ํนํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๋๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
๋ฐ์ดํฐ ์บ์ฑ ๋ฐ ๋ฌดํจํ์ ๋ํ ์์น์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ฑํํ๊ณ , ํจ์จ์ ์ธ ์ฝ๋ ๋ถํ ์ ์ํด Suspense๋ฅผ ํ์ฉํ๊ณ , SuspenseList props๋ฅผ ์ ๋ต์ ์ผ๋ก ๊ตฌ์ฑํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ถ์ง๋ฐํ ๋ชจ๋ํฐ๋งํจ์ผ๋ก์จ, ์ฐ๋ฆฌ๋ ๊ธฐ๋ฅ์ด ํ๋ถํ ๋ฟ๋ง ์๋๋ผ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํด ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ง์ ์ผ๋ก ๊ธ๋ก๋ฒํ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ๊ฐ๋ ๊ธธ์ ์ฌ๋ ค ๊น์ ์์ง๋์ด๋ง์ผ๋ก ํฌ์ฅ๋์ด ์์ผ๋ฉฐ, Suspense ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ๊ทธ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ ์ค์ํ ๋จ๊ณ์
๋๋ค.
๊ณ์ํด์ Suspense ๊ตฌํ์ ์คํํ๊ณ , ํ๋กํ์ผ๋งํ๊ณ , ๊ฐ์ ํด ๋๊ฐ์ญ์์ค. React์ ๋์์ฑ ๋ ๋๋ง๊ณผ ๋ฐ์ดํฐ ํ์นญ์ ๋ฏธ๋๋ ๋ฐ์ผ๋ฉฐ, ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ธก๋ฉด์ ๋ง์คํฐํจ์ผ๋ก์จ ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ธ๊ณ ๋ฌด๋์์ ๋น์ ๋ฐํ ์ ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.